package cfca.paperless.client.servlet._1_basic._1_10_RevokePdfSeal;

import java.io.File;

import org.apache.commons.io.FileUtils;

import cfca.paperless.client.servlet.PaperlessClient;
import cfca.paperless.client.servlet.PaperlessConfig;
import cfca.paperless.client.util.IoUtil;
import cfca.paperless.client.util.PaperlessUtil;

/**
 * @Description 撤销PDF印章接口，使用示例。 
 * 1，操作对象为本地待撤销印章的单个PDF文件。 
 * 2，返回撤销印章的结果PDF文件。
 * 
 * @Author dell
 * @Date 2016-5-13
 * @CodeReviewer TODO
 */
public class RevokePdfSealTest01 {

    public static void main(String[] args) throws Exception {

        long timeStart = System.currentTimeMillis();// 开始时间

        System.out.println("RevokePdfSealTest01 START");

        PaperlessClient clientBean = new PaperlessClient(PaperlessConfig.url, 10000, 60000);

        byte[] pdfFile = FileUtils.readFileToByteArray(new File("./TestData/sealedPdf1.pdf"));// 本地待撤销印章的单个PDF文件
        
        int count = -1;// 需要撤销印章的个数，[0：全部撤销]
        
        byte[] result = clientBean.revokePdfSeal(pdfFile, count, PaperlessConfig.operatorCode);

        String errorRsString = PaperlessUtil.isError(result);

        // 错误码（Code不等于200时为异常）
        if ("".equals(errorRsString)) {
            System.out.println("RevokePdfSealTest01 END OK");
            System.out.println(result.length);
            IoUtil.write("./TestData/output/RevokePdfSealTest01.pdf", result);
        } else {
            // 处理结果为异常，打印出错误码和错误信息
            System.out.println("RevokePdfSealTest01 END NG");
            System.out.println(new String(result, "UTF-8"));
        }
        
        long timeEnd = System.currentTimeMillis();// 结束时间
        System.out.println("##########" + "time used:" + (timeEnd - timeStart) + "##########");

    }

}
